<meta charset="utf-8"/>
<?php

//此文件用于接收提交过来的文件表单  

    echo '<pre>';
    //对应传输方式：method="post"
    print_r($_POST);//接收非上传数据（表单）
    //对应编码方式：enctype="multipart/form-data"
    print_r($_FILES); //接收文件上传的数据（文件）
    echo '</pre>';


//将临时位置的文件移到指定文件即可,即完成上传，但是在这步之前，需要做一些其他步骤，如下
//    copy($_FILES["tmp_file"], './uploads/aaa.gif');//将临时文件tmp_file拷贝到./uploads文件下的


// step 1
   $allowtype=array('gif','png','jpg');//设置允许上传的文件类型为gif,png和jpg
   $size = 1000000;                    //设置允许大小为1M（1000000字节）以内的文件
   $path = "./uploads";                //设置上传后保存文件的路径

   //判断文件是否可以成功上传到服务器，$_FILES['myfile']['error']为表示上传成功
   if($_FILES['myfile']['error']>0){ //假如error>0，提示上传错误
   	   echo '上传错误';
       switch($_FILES['myfile']['error']){  //否则，分情况说明
       	   case 1: echo '上传文件大小超过了php配置文件中的约定值：upload_max_filesize'; 
       	           break;
       	   case 2: echo '上传文件大小超出了表单中的约定值：MAX_FILE_SIZE';
       	           break;
       	   case 3: echo '文件只被部分上传';
       	           break;
       	   case 4: echo '没有上传任何文件';
       	           break;
       	   default:
       	           echo '未知错误'; 

       }
   }

//step 2
   //判断上传的文件是否为允许的文件类型，通过文件的后缀名
   $arr = explode(".",$_FILES['myfile']['name']); //通过 . 号分割
   $hz = $arr[count($arr)-1];  //通过文件最后一位分割
   echo $hz;

//step 3
  //判断上传的文件是否为允许大小
   if($_FILES['myfile']['size']>$size){
   	  echo '超过了允许的{$size}字节大小';
   	  die;
   }

//step 4
  //为了系统安全，也为了同名文件不会被覆盖，上传后将文件名使用系统定义
   $filename = date("YmdHis").rand(100,999).".".$hz;


//step 5
   //判断是否为上传文件
   if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
   	   if(!move_uploaded_file($_FILES['myfile']['tmp_name'],'$path.'/'.$filename')){
           echo '不能将文件移动到指定位置';
           die;
       }
   }else{
   	   echo "问题：上传的文件{$_FILES['myfile']['name']}不是一个合法的文件";
   	   die;
   }

//step 6
   //如果文件上传成功则输出
   echo "文件{$upfile}上传成功，保存在目录{$path}中，大小为{$_FILES['myfile']['size']}字节";
 










